The increasing demand for digital video/audio information presents an ever increasing problem of monitoring the transmission or storage of data in data communication. As the transmission bandwidth increases in response to greater demand, it becomes increasingly more difficult to monitor the enormous amount of transmitted information in real time.
Generally, the data streams (bitstreams) contain various data elements that include video, audio, timing, program specific information and control data which are packaged into various "packets". A packet is a group of binary digits that include various data elements which are switched and transmitted as a composite whole. The data elements and other information are arranged in accordance with various specific formats, e.g., ISO/IEC international Standards 11172-* (MPEG-1), 13818-* (MPEG-2), ATSC standards and Digital Video Broadcasting (DVB) specification prETS 300-468, which are incorporated herein in their entirety by reference. In general, MPEG defines a packet as consisting of a header followed by a number of contiguous bytes from an "elementary data stream". An elementary stream is simply a generic term for one of the coded video, coded audio or other coded bitstreams. More specifically, a MPEG-2 "transport stream" packet comprises a header, which may be four (4) or more bytes long with a payload having a maximum length of 184 bytes. Transport stream packets are part of one or more programs which are assembled into a transport stream. The transport stream is then transmitted over a channel with a particular transfer rate.
Important components in the transport stream include various time-elements, i.e., Program Clock Reference (PCR) data and descriptive data called Program Specific Information (PSI). It should be noted that MPEG-2 allows a separate information system to be employed with the PSI, e.g., the Service Information (SI) in accordance with the DVB specification. In brief, the PCR is a time stamp encoding the timing of the bitstream itself and is used to derive the decoder timing, where the SI provides information to the decoder concerning the array of services that are offered. The SI allows a decoder to tune automatically to particular services and allows services to be grouped into categories with relevant schedule information.
Thus, it is important to monitor and verify that these time-elements and program specific information are received properly and that they are within the constraints defined by the relevant standards. Furthermore, it is important to alert the decoding system in real time if these time-elements and program specific information are outside of the allowed tolerances. Detection of such deviations allows the decoding system to account for packet framing errors, jitters, inconsistent time base information or network wide errors that may affect a plurality of channels. Although it may be more cost effective to capture the data in the transport stream into storage and then analyze the data at a later time, the benefit of real time analysis is lost.
With respect to PCR processing, although the set of specifications 13818 contain two very general descriptions of jitter measurement, in Annex D of part one and part nine of the systems specification, these two methods leave many parameters up to the discretion of the user, contain some imperfections and are impractical in-real-time applications.
Therefore, a need exists in the art for a method and apparatus for performing real time bitstream analysis. Specifically, a need exists for a method and apparatus for detecting and verifying errors in the bitstream such as inconsistencies of time base and program specific information.